Conversation
... this was less satisfying than I expected it'd be
…o give it a special place.
There was a problem hiding this comment.
Pull request overview
This PR removes the remaining legacy netfx/netcore split-project infrastructure and related build/packaging targets, and updates test/tool projects to use the unified repo layout and default bin/obj outputs.
Changes:
- Deletes obsolete MSBuild targets/props used by the historical netfx/netcore split (contract/not-supported/doc-trim/package-gen, etc.).
- Updates test and tool
.csprojfiles to reference dependencies via$(RepoRoot)and to use default output/intermediate paths. - Simplifies
build.proj/OneBranch Roslyn-analyzer integration by removing legacy/default target assumptions.
Reviewed changes
Copilot reviewed 29 out of 29 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/targets/TrimDocsForIntelliSense.targets | Removed obsolete XML doc trimming target. |
| tools/targets/ResolveContract.targets | Removed legacy contract-resolution target. |
| tools/targets/NotSupported.targets | Removed legacy “platform not supported” assembly generation target. |
| tools/targets/GenerateMdsPackage.targets | Removed legacy nuspec-based MDS package generation target. |
| tools/props/Tools.props | Removed unused tool-related props file. |
| tools/GenAPI/Directory.Build.props | Removed GenAPI-local Directory.Build.props shim. |
| src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft.Data.SqlClient.UnitTests.csproj | Updates project references to use $(RepoRoot) paths. |
| src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/TDS.csproj | Simplifies to single TargetFramework and default output paths. |
| src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/TDS.Servers.csproj | Updates project references to $(RepoRoot) paths and simplifies TFM/output settings. |
| src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj | Simplifies TFM/output settings and updates project reference paths. |
| src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities/Microsoft.Data.SqlClient.TestUtilities.csproj | Simplifies to single TargetFramework and default output paths. |
| src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.ExtUtilities/Microsoft.Data.SqlClient.ExtUtilities.csproj | Simplifies to single TargetFramework. |
| src/Microsoft.Data.SqlClient/tests/PerformanceTests/Microsoft.Data.SqlClient.PerformanceTests.csproj | Moves to default output paths and modernizes conditional Project/Package reference selection. |
| src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj | Removes legacy netfx/netcore output/target-group plumbing. |
| src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj | Removes legacy netfx/netcore output/target-group plumbing. |
| src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj | Removes legacy netfx/netcore output/target-group plumbing. |
| src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj | Removes legacy netfx/netcore output/target-group plumbing. |
| src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj | Updates project references to use $(RepoRoot) paths. |
| src/Microsoft.Data.SqlClient/tests/FunctionalTests/Microsoft.Data.SqlClient.FunctionalTests.csproj | Updates project references to use $(RepoRoot) paths. |
| src/Microsoft.Data.SqlClient/netfx/tools/targets/GenerateAssemblyRef.targets | Deletes legacy netfx-only codegen target. |
| src/Microsoft.Data.SqlClient/netfx/tools/targets/GenerateAssemblyInfo.targets | Deletes legacy netfx-only codegen target. |
| src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj | Deletes legacy netfx driver project. |
| src/Microsoft.Data.SqlClient/netfx/ref/Microsoft.Data.SqlClient.csproj | Deletes legacy netfx ref-assembly project. |
| src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj | Deletes legacy netcore driver project. |
| src/Microsoft.Data.SqlClient/netcore/ref/Microsoft.Data.SqlClient.csproj | Deletes legacy netcore ref-assembly project. |
| src/Microsoft.Data.SqlClient.slnx | Updates solution structure to remove legacy netfx/netcore projects and adjust folder layout. |
| src/Directory.Build.props | Removes legacy split-project path/OS properties; keeps minimal repo-wide build settings. |
| eng/pipelines/onebranch/steps/roslyn-analyzers-csproj-step.yml | Removes BuildAllConfigurations default and simplifies analyzer invocation. |
| build.proj | Removes legacy default target and legacy driver build/test orchestration; keeps extension/AKV/SqlServer targets. |
paulmedynski
left a comment
There was a problem hiding this comment.
Nothing better than waking up to a PR that deletes 3000+ lines of obsolete code!
...osoft.Data.SqlClient/tests/PerformanceTests/Microsoft.Data.SqlClient.PerformanceTests.csproj
Show resolved
Hide resolved
Codecov Report✅ All modified and coverable lines are covered by tests.
Additional details and impacted files@@ Coverage Diff @@
## main #4145 +/- ##
==========================================
- Coverage 74.27% 66.44% -7.83%
==========================================
Files 279 274 -5
Lines 42980 65799 +22819
==========================================
+ Hits 31922 43723 +11801
- Misses 11058 22076 +11018
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
mdaigle
left a comment
There was a problem hiding this comment.
Looks ok to me. We can revisit the API compatibility target later and get it better integrated.
11f1e0c
| <!-- SqlServer Targets --> | ||
| <PropertyGroup> | ||
| <SqlServerProperties>$(CommonProperties)</SqlServerProperties> | ||
|
|
||
| <SqlServerProperties | ||
| Condition="'$(SqlServerPackageVersion)' != ''"> | ||
| <SqlServerProperties Condition="'$(SqlServerPackageVersion)' != ''"> | ||
| $(SqlServerProperties);SqlServerPackageVersion=$(SqlServerPackageVersion) | ||
| </SqlServerProperties> |
There was a problem hiding this comment.
$(CommonProperties) is referenced to build up SqlServerProperties/AbstractionsProperties/LoggingProperties/AzureProperties/AkvProviderProperties, but CommonProperties is no longer defined anywhere (not in this file nor src/Directory.Build.props). Either reintroduce the property (if it’s meant to carry shared globals like Configuration/ReferenceType) or remove these expansions to avoid misleading no-op property plumbing.
Description
This PR will hopefully bring the separate codebases chapter of SqlClient history to a close. This PR cleans up the old separate projects and all the remaining cruft that was part of it.
Issues
N/A
Testing
Local testing suggests this will pass. There's a lot of things intertwined with the directory.build.props and build.proj files so I expect some hiccups. But theoretically it should be easy.